/*
 * Copyright (C) 2016 yixun All Rights Reserved.
 * 
 * User.java
 */
package com.emm.yixun.common.model;

import java.io.Serializable;
import java.util.Date;

import com.alibaba.fastjson.annotation.JSONField;

/**
 * [文件名称]<br>
 * User.java<br>
 * <br>
 * [文件描述]<br>
 * 员工表 pojo bean<br>
 * <br>
 * [修改记录]<br>
 * 2016-05-19 11:21:12 创建<br>
 * 
 * @version 1.00
 */
public class User extends CommonModel implements Serializable {
	/**
	 * 序列化UID
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 主键、自动增长
	 */
	private Long id;
	/**
	 * 唯一编码
	 */
	private String userCode;
	/**
	 * 员工名称，用于显示
	 */
	private String userName;
	/**
	 * 员工账号，用于登陆
	 */
	private String userAccount;
	/**
	 * 员工账号密码，用于登陆
	 */
	private String userPassword;
	/**
	 * 员工手机号码，可用于登陆
	 */
	private String userPhone;
	/**
	 * 头像图片URL
	 */
	private String headPic;
	/**
	 * 生日
	 */
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date birthday;
	/**
	 * 生日
	 */
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date entryTime;
	/**
	 * 员工状态:[{key:user_status,values:[{no:0,alias:IN_USE,remark:在用},{no:1,alias:UN_USE,remark:禁用}]}]
	 */
	private String userStatus;
	/**
	 * 0:否 1:是
	 */
	private String isAdmin;
	/**
	 * 部门ID，关联部门表
	 */
	private Long userDepartmentId;
	/**
	 * 部门路径，用于部门数据权限控制
	 */
	private String userDepartmentPath;
	/**
	 * 角色ID，关联角色表
	 */
	private Long roleId;
	/**
	 * 备注
	 */
	private String remark;
	/**
	 * 商户ID
	 */
	private Long merchantId;
	/**
	 * 创建人ID,关联用户表
	 */
	private Long createUserId;
	/**
	 * 创建时间格式：yyyy-MM-dd HH:mm:ss
	 */
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date createTime;
	/**
	 * 修改人ID,关联用户表
	 */
	private Long updateUserId;
	/**
	 * 修改时间格式：yyyy-MM-dd HH:mm:ss
	 */
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date updateTime;
	/**
	 * 是否删除:[{key:del_flag,values:[{no:0,alias:UNDEL,remark:否},{no:1,alias:DEL,remark:是}]}]
	 */
	private String delFlag;
	/**
	 * 主题skin-0，skin-1，skin-2，skin-3
	 */
	private String skin;

	// 座机号 type:1手机 2座机 [{type:1,phone:18665716497}];
	private String userLandlines;
	
	//性别
	private String sex;

	//邮箱
	private String email;
	
	//所属公司编码
	private String companyCode;
	
	//OA 用户ID
	private String oaUserCode;
	
	//客户列表排序
	private String customerSort;
	
	//客户列表隐藏字段
	private String customerHideField;
	
	//岗位职务
	private String position;
	
	public String getOaUserCode() {
	    return oaUserCode;
	}
	public void setOaUserCode(String oaUserCode) {
	    this.oaUserCode = oaUserCode;
	}

	public String getSex() {
	    return sex;
	}

	public void setSex(String sex) {
	    this.sex = sex;
	}

	public String getEmail() {
	    return email;
	}

	public void setEmail(String email) {
	    this.email = email;
	}

	public String getCompanyCode() {
	    return companyCode;
	}

	public void setCompanyCode(String companyCode) {
	    this.companyCode = companyCode;
	}

	/**
	 * 设置 :主键、自动增长
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * 获取 :主键、自动增长
	 */
	public Long getId() {
		return this.id;
	}

	/**
	 * 设置 :唯一编码
	 */
	public void setUserCode(String userCode) {
		this.userCode = userCode;
	}

	/**
	 * 获取 :唯一编码
	 */
	public String getUserCode() {
		return this.userCode;
	}

	/**
	 * 设置 :员工名称，用于显示
	 */
	public void setUserName(String userName) {
		this.userName = userName;
	}

	/**
	 * 获取 :员工名称，用于显示
	 */
	public String getUserName() {
		return this.userName;
	}

	/**
	 * 设置 :员工账号，用于登陆
	 */
	public void setUserAccount(String userAccount) {
		this.userAccount = userAccount;
	}

	/**
	 * 获取 :员工账号，用于登陆
	 */
	public String getUserAccount() {
		return this.userAccount;
	}

	/**
	 * 设置 :员工账号密码，用于登陆
	 */
	public void setUserPassword(String userPassword) {
		this.userPassword = userPassword;
	}

	/**
	 * 获取 :员工账号密码，用于登陆
	 */
	public String getUserPassword() {
		return this.userPassword;
	}

	/**
	 * 设置 :员工手机号码，可用于登陆
	 */
	public void setUserPhone(String userPhone) {
		this.userPhone = userPhone;
	}

	/**
	 * 获取 :员工手机号码，可用于登陆
	 */
	public String getUserPhone() {
		return this.userPhone;
	}

	/**
	 * 设置 :头像图片URL
	 */
	public void setHeadPic(String headPic) {
		this.headPic = headPic;
	}

	/**
	 * 获取 :头像图片URL
	 */
	public String getHeadPic() {
		return this.headPic;
	}

	/**
	 * 设置 :生日
	 */
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	/**
	 * 获取 :生日
	 */
	public Date getBirthday() {
		return this.birthday;
	}

	/**
	 * 设置 :生日
	 */
	public void setEntryTime(Date entryTime) {
		this.entryTime = entryTime;
	}

	/**
	 * 获取 :生日
	 */
	public Date getEntryTime() {
		return this.entryTime;
	}

	/**
	 * 设置 :员工状态:[{key:user_status,values:[{no:0,alias:IN_USE,remark:在用},{no:1,alias:UN_USE,remark:禁用}]}]
	 */
	public void setUserStatus(String userStatus) {
		this.userStatus = userStatus;
	}

	/**
	 * 获取 :员工状态:[{key:user_status,values:[{no:0,alias:IN_USE,remark:在用},{no:1,alias:UN_USE,remark:禁用}]}]
	 */
	public String getUserStatus() {
		return this.userStatus;
	}

	/**
	 * 设置 :0:否 1:是
	 */
	public void setIsAdmin(String isAdmin) {
		this.isAdmin = isAdmin;
	}

	/**
	 * 获取 :0:否 1:是
	 */
	public String getIsAdmin() {
		return this.isAdmin;
	}


	public Long getUserDepartmentId() {
	    return userDepartmentId;
	}

	public void setUserDepartmentId(Long userDepartmentId) {
	    this.userDepartmentId = userDepartmentId;
	}

	/**
	 * 设置 :部门路径，用于部门数据权限控制
	 */
	public void setUserDepartmentPath(String userDepartmentPath) {
		this.userDepartmentPath = userDepartmentPath;
	}

	/**
	 * 获取 :部门路径，用于部门数据权限控制
	 */
	public String getUserDepartmentPath() {
		return this.userDepartmentPath;
	}

	/**
	 * 设置 :角色ID，关联角色表
	 */
	public void setRoleId(Long roleId) {
		this.roleId = roleId;
	}

	/**
	 * 获取 :角色ID，关联角色表
	 */
	public Long getRoleId() {
		return this.roleId;
	}

	/**
	 * 设置 :备注
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**
	 * 获取 :备注
	 */
	public String getRemark() {
		return this.remark;
	}

	/**
	 * 设置 :商户ID
	 */
	public void setMerchantId(Long merchantId) {
		this.merchantId = merchantId;
	}

	/**
	 * 获取 :商户ID
	 */
	public Long getMerchantId() {
		return this.merchantId;
	}

	/**
	 * 设置 :创建人ID,关联用户表
	 */
	public void setCreateUserId(Long createUserId) {
		this.createUserId = createUserId;
	}

	/**
	 * 获取 :创建人ID,关联用户表
	 */
	public Long getCreateUserId() {
		return this.createUserId;
	}

	/**
	 * 设置 :创建时间格式：yyyy-MM-dd HH:mm:ss
	 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	/**
	 * 获取 :创建时间格式：yyyy-MM-dd HH:mm:ss
	 */
	public Date getCreateTime() {
		return this.createTime;
	}

	/**
	 * 设置 :修改人ID,关联用户表
	 */
	public void setUpdateUserId(Long updateUserId) {
		this.updateUserId = updateUserId;
	}

	/**
	 * 获取 :修改人ID,关联用户表
	 */
	public Long getUpdateUserId() {
		return this.updateUserId;
	}

	/**
	 * 设置 :修改时间格式：yyyy-MM-dd HH:mm:ss
	 */
	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	/**
	 * 获取 :修改时间格式：yyyy-MM-dd HH:mm:ss
	 */
	public Date getUpdateTime() {
		return this.updateTime;
	}

	/**
	 * 设置 :是否删除:[{key:del_flag,values:[{no:0,alias:UNDEL,remark:否},{no:1,alias:DEL,remark:是}]}]
	 */
	public void setDelFlag(String delFlag) {
		this.delFlag = delFlag;
	}

	/**
	 * 获取 :是否删除:[{key:del_flag,values:[{no:0,alias:UNDEL,remark:否},{no:1,alias:DEL,remark:是}]}]
	 */
	public String getDelFlag() {
		return this.delFlag;
	}

	/**
	 * 设置 :主题skin-0，skin-1，skin-2，skin-3
	 */
	public void setSkin(String skin) {
		this.skin = skin;
	}

	/**
	 * 获取 :主题skin-0，skin-1，skin-2，skin-3
	 */
	public String getSkin() {
		return this.skin;
	}

	public String getUserLandlines() {
		return userLandlines;
	}

	public void setUserLandlines(String userLandlines) {
		this.userLandlines = userLandlines;
	}

	@Override
	public boolean equals(Object obj) {
		User s = (User) obj;
		return id.equals(s.id) && userCode.equals(s.userCode) && userName.equals(s.userName);
	}

	@Override
	public int hashCode() {
		String in = id + userCode + userName;
		return in.hashCode();
	}
	
	public String getCustomerSort() {
		return customerSort;
	}
	
	public void setCustomerSort(String customerSort) {
		this.customerSort = customerSort;
	}
	
	public String getCustomerHideField() {
		return customerHideField;
	}
	
	public void setCustomerHideField(String customerHideField) {
		this.customerHideField = customerHideField;
	}
	
	public String getPosition() {
		return position;
	}
	
	public void setPosition(String position) {
		this.position = position;
	}
	
}
